#ifndef _ROBOT_NAO_CNAOCLIENT_H_
#define _ROBOT_NAO_CNAOCLIENT_H_

#include <robot/robot.h>
#include <robot/sdh/enums.h>
#include <blackbox/proxies.h>
#include <buola/mat.h>
#include <blackbox/cmethod.h>

namespace buola { namespace robot { namespace nao {

using namespace buola;

class CNaoClient : public blackbox::BBox
{
public:
    CNaoClient();
    ~CNaoClient();

    void Init(const blackbox::CBoxProxy &pBox=blackbox::CClientProxy("bbnao@arwen")["nao"]);

    void GetPose(mat::CVecNd<26> &pValues);
    void SetGoal(const mat::CVecNd<26> &pJoints);
    void Speak();
    void Posture(const std::string &pName);
    void Walk();
    void Relax();
    
private:
    std::unique_ptr<blackbox::CBoxProxy> mNao;
    blackbox::CArrayIn<double> iJoints;
};

/*namespace nao*/ } /*namespace robot*/ } /*namespace buola*/ }

#endif
